Controlling Application Windows In An Operating System

ABSTRACT

Systems and methods are provided for controlling the appearance of application windows on a computer display screen. A user identifies either an application window currently running on the computer or a new application to be started. The user also identifies a size, shape, and screen location by inputting a geometric shape, such as by drawing a rectangle with a pen or stylus input device, on the display screen. The appearance of the application window is set based on the geometric shape. The application window is resized and moved, for a currently running application, or created, for a new application, on the display screen.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, commonlyassigned co-pending U.S. patent application Ser. No. 14/560,604,entitled “Controlling Application Windows in an Operating System,” filedon Dec. 4, 2014, which is a continuation of, co-pending U.S. patentapplication Ser. No. 13/487,016, entitled “Controlling ApplicationWindows in an Operating System,” filed on Jun. 1, 2012, issued as U.S.Pat. No. 8,910,006 on Dec. 9, 2014, which is a continuation of, andclaims priority to, commonly assigned co-pending U.S. patent applicationSer. No. 11/275,798, entitled “Controlling Application Windows in anOperating System,” filed on Jan. 30, 2006, issued as U.S. Pat. No.8,196,055 on Jun. 5, 2012, the entire disclosures of which areincorporated by reference herein in their entirety.

BACKGROUND

Computer operating systems commonly allow the customization ofapplication windows on the display screen. Users may minimize, maximize,tile, or control the size and screen location of the windows of thedifferent applications currently running on their computer. Thesetechniques are often designed for ease of use and compatibility withcommonly used computer input devices, such as a mouse and keyboard. Forexample, window resizing may commonly be done by a user by hovering themouse cursor over a small designated target location at a corner of theapplication window to be resized. The user then presses and holds themouse button and then drags the mouse to resize the application window,setting a different size and shape for the window. Similarly, manycomputer operating systems allow users to move application windowsaround the display screen by mouse-clicking on a different specifictarget location on the application window, and then dragging the windowto a different location.

As computer operating system input devices have evolved, pen inputdevices have become common tools for interacting with operating systemson tablet personal computers (tablet PCs), personal digital assistants(PDAs), and similar pen-supported computing devices. Pen input devicesare pointed writing instruments which allow users to “draw” on theircomputer screen as though they were writing with an ink pen on a pieceof paper. For example, a pen input device may be an electromagneticdigital pen compatible with certain tablet PCs, or it may be a simpletouch pen or stylus compatible with certain tablet PCs and many PDAshaving touch digitizers. A pen input device may also support taps anddrags to perform the same functions as a mouse does performs with clicksand drags. Thus, in a tablet PC or any device with which a pen inputdevice may be used rather than or in addition to a mouse, users commonlymove and resize application windows using taps and drags, similar to theway that a mouse user might perform these operations.

However, operating system tasks such as these, which were originallydesigned for mouse input devices, may potentially be more difficult toperform with pen input devices, since subtle movements such as taps ordrags into small target areas may require greater motor control.Additionally, pen input targeting errors may result when a user holds apen at an angle, electromagnetic interference may affect a digitizer'selectromagnetic field, and the pen input might not be accuratelycalibrated to the digitizer. These and other potential problems maycause many operating system tasks to be less reliable or more tediouswith a pen input device. Thus, in current operating systems, using a peninput device to resize or reposition application windows may beconsiderably more difficult than using a mouse to perform the sametasks.

As PDAs and tablet PCs with pen input devices have gained in popularity,some efforts have been made to improve the usability of pen inputdevices with respect to such tasks as window resizing and repositioning.In one attempt, the target area that the user taps on the display screento resize a window was made larger to allow users to more easily tapthat area and resize the window. However, solutions such as thisunnecessarily waste valuable limited space on the display screen, whichfor devices such as tablet PCs or PDAs may already be smaller thenstandard display screens. This problem is further compounded when a userhas many application windows open concurrently on the screen.

SUMMARY

The following presents a simplified summary of the invention in order toprovide a basic understanding of some aspects of the invention. Thissummary is not an extensive overview of the invention. It is notintended to identify key or critical elements of the invention or todelineate the scope of the invention. The following summary merelypresents some concepts of the invention in a simplified form as aprelude to the more detailed description provided below.

Various illustrative aspects of the present invention are directed tocontrolling the appearance of an application window on a display screen.A user may designate an existing application window and may then input ageometric shape, such as by drawing a rectangle on the screen with adigital pen input device. The operating system may then automaticallyresize and move the existing application window to the screen locationdetermined by the rectangle. The geometric shape may also include, forexample, a diagonal line representative of a rectangle of a newapplication window in which to establish the moved and resizedapplication window.

According to another aspect of the present disclosure, a user may starta new application in a chosen location. The user may draw a geometricshape on the display screen and then input an application name, forexample, by drawing a rectangle on the screen with a pen input deviceand then writing an application name with the pen inside the rectangle.The operating system may recognize the application name, then start thenew application and draw a new application window, using a size, shape,and screen location based on the user-drawn rectangle (or other shape).The user may also identify the new application to be started by using astart menu, run dialog, radial menu, word wheel dialog, or similartechnique. In yet another aspect of the present disclosure, anapplication window may be configured to run in a minimized or maximizedstate, or may be closed, by receiving other geometric shapes drawn bythe user predefined to invoke operating systems commands for minimizing,maximizing, invoking a help dialog box, and closing application windows.

According to another aspect of the present disclosure, a windowdefinition mode may be initiated by a user to allow the operating systemto better interpret the intended purpose of geometric shapes drawn onthe screen. Window definition mode may be initiated, for example, by aphysical button positioned on a pen input device or tablet Pc. This modemay allow a user to draw shapes on the screen overlapping existingapplication windows, for example, to move an existing application windowor to create a new application window, without affecting the operationof the underlying window. Thus, window definition mode may allow theoperating system to distinguish between user actions intended tointeract with a specific application window, and user actions intendedto move, resize, or create a new application window. Window definitionmode may alternatively be instantiated using a soft button or controldisplayed on the display screen, or by performing a gesture, such as a“flick” with a pen input device.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described the invention in general terms, reference will nowbe made to the accompanying drawings, which are not necessarily drawn toscale, and wherein:

FIG. 1 is a block diagram illustrating an operating environment in whichone or more illustrative embodiments may be performed;

FIG. 2 is a flowchart showing illustrative user steps for defining theappearance of an application window in a display screen;

FIG. 3A illustrates a screen shot showing a method for instantiating anew application and defining the appearance of an associated applicationwindow on a display screen according to one or more illustrativeaspects;

FIG. 3B illustrates a screen shot showing a new application window on adisplay screen resulting from the methods illustrated in FIG. 3A;

FIG. 4A illustrates a screen shot showing a method for changing thescreen appearance on an existing application window on a display screenaccording to one or more illustrative aspects;

FIG. 4B illustrates a screen shot showing a new appearance for anexisting application window resulting from the methods illustrated inFIG. 4A; and

FIG. 5 is a flowchart showing illustrative decision-making steps fordrawing an application window on a display screen according to one ormore illustrative aspects.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration various embodiments in which theinvention may be practiced. It is to be understood that otherembodiments may be utilized and structural and functional modificationsmay be made without departing from the scope of the present invention

Illustrative Operating Environment

FIG. 1 illustrates an example of a suitable computing environment 100 inwhich the invention may be implemented. The computing environment 100 isonly one example of a suitable computing environment and is not intendedto suggest any limitation as to the scope of use or functionality of theinvention. Neither should the computing environment 100 be interpretedas having any dependency or requirement relating to anyone orcombination of components illustrated in the exemplary operatingenvironment 100.

The invention is operational with numerous other general purpose orspecial purpose computing system environments or configurations.Examples of well known computing systems, environments, and/orconfigurations that may be suitable for use with the invention include,but are not limited to, personal computers; server computers; portableand hand-held devices such as personal digital assistants (PDAs), tabletPCs or laptop PCs; multiprocessor systems; microprocessor-based systems;set top boxes; programmable consumer electronics; network PCs;minicomputers; mainframe computers; game consoles; distributed computingenvironments that include any of the above systems or devices; and thelike.

The invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices.

With reference to FIG. 1, an illustrative system for implementing theinvention includes a general purpose computing device in the form of acomputer 110. Components of computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memory130 to the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, Advanced Graphics Port (AGP)bus, and Peripheral Component Interconnect (PCI) bus also known asMezzanine bus.

Computer 110 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 110 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, DVD or other optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can accessed by computer 110.Communication media typically embodies computer readable instructions,data structures, program modules or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. Combinations of the anyof the above should also be included within the scope of computerreadable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,DVD, digital video tape, solid state RAM, solid state ROM, and the like.The hard disk drive 141 is typically connected to the system bus 121through a non-removable memory interface such as interface 140, andmagnetic disk drive 151 and optical disk drive 155 are typicallyconnected to the system bus 121 by a removable memory interface, such asinterface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, or example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies. A user may enter commands andinformation into the computer 110 through input devices such as akeyboard 162 and pointing device 161, commonly referred to as a mouse,trackball or touch pad. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are often connected to the processing unit120 through a user input interface 160 that is coupled to the systembus, but may be connected by other interface and bus structures, such asa parallel port, game port, universal serial bus (USB), or IEEE 1394serial bus (FireWire). At least one monitor 184 or other type of displaydevice may also be connected to the system bus 121 via an interface,such as a video adapter 183. The video adapter 183 may support advanced3D graphics capabilities, in addition to having its own specializedprocessor and memory. Computer 110 may also include a digitizer 185 toallow a user to provide input using a stylus or other pen input device186. In addition to the monitor, computers may also include otherperipheral output devices such as speakers 189 and printer 188, whichmay be connected through an output peripheral interface 187.

The computer 110 may operate m a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 110, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the computer 110 may beconnected to the LAN 171 through a network interface or adapter 170.When used in a WAN networking environment, the computer 110 may includea modem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 182 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

One or more aspects of the invention may be embodied incomputer-executable instructions, such as in one or more programmodules, executed by one or more computers or other devices. Generally,program modules include routines, programs, objects, components, datastructures, etc. that perform particular tasks or implement particularabstract data types when executed by a processor in a computer or otherdevice. The computer executable instructions may be stored on a computerreadable medium such as a hard disk, optical disk, removable storagemedia, solid state memory, RAM, etc. As will be appreciated by one ofskill in the art, the functionality of the program modules may becombined or distributed as desired in various embodiments. In addition,the functionality may be embodied in whole or in part in firmware orhardware equivalents such as integrated circuits, field programmablegate arrays (FPGA), and the like.

ILLUSTRATIVE EMBODIMENTS

Illustrative embodiments described herein may aid a user to define awindow size, shape, and/or location by drawing an approximation of a newwindow size on a display screen, e.g., using a stylus or pen inputdevice. Although the illustrative embodiments described in theseexamples often refer to a tablet PC with a connected pen input device,the present disclosure is not limited to such uses. PDAs, laptop ordesktop PCs, and any other device with a windowing system, such as, forexample, a graphical computer operating system, may take advantage ofthe methods disclosed herein to define and change the appearance ofapplication windows on the display screen of a computer. For example, aPDA using a stylus, a tablet PC using touch and/or pen input, or adesktop computer connected to a mouse and keyboard may employ theadvantages of the present disclosure to identify new or existingapplication windows and draw geometric shapes on the display screen ofthe device in order to change the appearance of these applicationwindows.

Referring to FIG. 2, a flowchart is shown illustrating steps that a usermay take to define the appearance of an application window in a displayscreen. The steps of FIG. 2 may be performed, for example, on a tabletPC when a user wants to customize the appearance of one or moreapplication windows on the display screen. For example, a user may wantto move or resize an existing application window, or to create a newapplication instance while defining the size and location of the newapplication window corresponding to this new application.

In step 201, the user of a computer may put the computer into a windowdefinition mode. A window definition mode is a mode in which theoperating system or user interface controller is explicitly expectinginput through which a user can perform a function related to resizing,moving, or creating an application window. As is indicated in FIG. 2,this step may be optional. In many embodiments, it may be possible toidentify an application and specify a desired region on the displayscreen without needing to initiate a designated window definition mode.For example, if a user draws a rectangle on the empty desktop of acomputer with no currently running applications, then the operatingsystem may be able to unambiguously determine that the user intends tocreate a new application window at the specified location. In acontrasting example, a user may draw a geometric shape or symbol on topan existing application window, so that the operating system may not beable to unambiguously determine whether the user intends to place a newapplication window on top of an existing application window or to merelyinteract with the application currently running in the window. Thus, inthis example, a window definition mode may potentially provide theadvantage of allowing a user to place an application window on top of anexisting application window, without the operating system interpretingthe user-drawn symbols as an attempt to interact with the existingapplication.

In embodiments that use a designated window definition mode, this modemay be initiated by a user action before identifying the application tobe moved, resized, or created, and before drawing a rectangle or otherindicia to describe the shape for the new application window. A user mayinitiate this mode by, for example, pushing a button positioned on theoutside of the pen input device, pushing a button positioned on theoutside of the computer itself, inputting a predefined gesture using thepen input device, or any other predefined input, to toggle windowdefinition mode on and off. In certain embodiments, window definitionmode may be initiated and disengaged using operating system commands,such as, for example, clicking an icon in the Start Menu, Task Bar, orQuick Launch Menu of a Microsoft Windows® operating system, or byinteracting with a dedicated Control Panel user interface.

In step 203, the user may identify the application whose window is to bemanipulated (i.e., placed, moved, resized, etc.) on the display screen.An application may be an application currently running on the computer,or a new application that the user intends to start or launch.Therefore, identifying an application may simply involve the userselecting an application window from among the application windowsvisible on the screen. In certain embodiments, the user need not performany action at this step, because the operating system may select a newapplication or existing application window according to predefinedsystem or user preferences. For example, the operating system may beconfigured to designate the currently active, foreground, or in-focus,application as the target of the moving/resizing function.Alternatively, the user may select a new application to be started, orinstantiated, from among any of the applications, or programs, installedon the computer. For example, step 203 may involve a user selecting anapplication to run from the Start Menu, or typing or writing anapplication name into a Run dialog box, a word wheel dialog box, or onthe screen of the computer.

Additionally, as is described below, a user might not identify anapplication to move, resize, or create until after drawing a geometricshape to describe the region of the display screen to be used for theassociated application window. For example, in certain embodiments auser may first draw the desired shape onto the screen, then identify theapplication, while in other embodiments the user may first identify anapplication, then draw the shape on the screen to place thatapplication.

In step 205, the user may draw a geometric shape, such as a rectangle,on the screen to indicate the size, shape, and screen location where theapplication window associated is to be placed. As is shown in FIGS. 3Aand 4A, and as is commonly understood in the field of tablet PCs, peninput devices, and related technologies, the rectangle drawn by the usermight not be a perfectly geometric rectangle but instead may be a symbolsubstantially similar to a rectangle so that the operating system of thecomputer may recognize the symbol as an intended rectangle and maydetermine a size, shape, and screen location based on the symbol. Forexample, the maximum, minimum, or average height of the drawnrectangular symbol may be used as the height of the application windowto be drawn, the maximum, minimum, or average width of the rectangularsymbol may be used as the width of the application window to be drawn,and the geometric center of the rectangular symbol (or some otherpredefined location or feature of the shape) may be used to define thescreen location of the application window to be drawn.

In other embodiments, the user may draw a circular symbol, a diagonalline (e.g., representing a diagonal of a rectangular shaped window), orany predetermined symbol from which the operating system can calculatean intended appearance for the application window to be drawn. Even ifthe application window itself is not rectangular, a rectangle or otheruser-drawn shape may still be used to define the size, shapes, andlocation of the application window. In certain embodiments, the user mayalso draw predefined symbols to indicate that the application windowshould be minimized, maximized, or closed. For example, a vertical linedrawn upwards or an upward “flick” motion (or other gesture) with a penmay indicate that the selected new or existing application window shouldbe maximized on the display screen. Similarly, a vertical line drawndownwards or a downward flick may indicate that the selected new orexisting application window should be minimized. An “X” may indicatethat the selected existing application window should be closed, while aquestion mark drawn over a window may indicate that a help dialog basedon the application and application state should be invoked. Suchexamples illustrate yet another potential advantage of the presentdisclosure, namely that a user may potentially create a new applicationinstance that is initially displayed in a minimized or maximized state,rather than being displayed in a portion of the desktop region of thescreen, as is a common default behavior in many computer systems.Further, a window definition mode may be used for other windowingcommands, such as close, help, minimize, maximize, and otherpredetermined operating system commands, such as commands associatedwith specific pen gestures.

Finally, in step 207, the operating system may determine the intendeduser action and may update the display screen, placing the applicationidentified in step 203 on the screen, using the size, shape, and/orscreen location determined in step 205.

Referring to FIG. 3A, a screen shot is shown illustrating a method forinstantiating a new application on a computer. The desktop region 303 ofthe display screen 301, a common feature of graphical operating systems,is the region of the display screen 301 not in use by an applicationwindow. FIG. 3A illustrates a computer with no currently runningapplications. Thus, the desktop region 303 takes up the bulk of thedisplay screen 301, and no application windows are present on thedesktop 303 or are indicated by application icons in the task bar region305.

In this example, the user has drawn a rectangle 307 in an unused area ofthe desktop region 303 with a pen input device. The user has alsowritten the word “EMAIL” 309 inside the rectangle 307. The order ofthese two user actions may be reversed while still preserving theadvantages described herein. That is, in certain embodiments, the usermay draw the rectangle 307 before writing the application name 309inside of it, while in other embodiments the user may write theapplication name 309 on the desktop before drawing a rectangle 307around it.

Once the rectangle 307 and the application name 309 have been written bythe user, the operating system of the computer may then interpret thesesymbols to determine first that the rectangular symbol 307 indicatesthat the user intends to create a new application window in this area ofthe screen. Secondly, the operating system may resolve the handwrittenapplication name 309 into the word “Email” and may determine anapplication to start based on this word. In this example, the word Emailindicates that the user intends to start an instance of the defaultelectronic mail application installed on the computer. Thus, thisexample further illustrates a potential advantage of such an embodiment,that writing a word with a pen input device may be faster and easier fora user than searching through a program hierarchy and selecting thedesired application.

Thus, turning to FIG. 3B, the operating system of the computer hasstarted the “Generic Email App” and drawn an application window 311 onthe display screen 301, having generally the same size, shape, andscreen location as the user-drawn rectangle 307. The rectangle 307 andthe writing 309 are no longer displayed on the screen. Additionally,since a new application was started on the computer, an icon 313associated with the new application window 311 now appears in the taskbar region 305.

Referring to FIG. 4A, another illustrative screen shot is shownillustrating a method for moving an existing application window in acomputer. The desktop region 403 of the display screen 401 contains oneapplication window 407 running the “Word Processor App.” An icon 409corresponding to application window 407 is shown in the task bar region405 of the display screen 401. The user in this example may want to keepapplication window 407 visible, but may want to make the window 407smaller and change its location. In this example, optionally afterentering the window definition mode, the user has drawn a rectangle 411,partially overlapping the application window 407. The user may thendesignate that the Word Processor App window 407 should be resized andmoved into the area of rectangle 411. As discussed above, thisdesignation may occur prior to the user drawing the rectangle on thescreen, or after the rectangle is drawn, or may occur automaticallybased on predefined system or user preferences. For example, the WordProcessor App window 407 may be chosen automatically because it was theactive application window when the user initiated window definitionmode, just before drawing the rectangle. In another example, the WordProcessor App window 407 may be chosen according to a predefined userpreference stating that whenever the drawn rectangle overlaps exactlyone application window, that application window is automaticallyselected to be resized window. Such user preferences may be created andstored by individual users, or may be available as operating systemdefaults that can be turned on and off by users.

As previously noted, unlike the example illustrated in FIGS. 3A and 3B,the geometric shape 411 overlaps the existing application window 407.While this does not in any way prohibit the user from creating a newapplication in this space, or moving an existing application window tothis space, it may be advantageous in certain embodiments to require theuser to initiate the window definition mode before drawing the rectangle411. Certain applications may be configured to accept pen strokes asinput and shapes drawn by the user in the application window, forexample, a drawing application or a note taking application running onthe computer. Thus, the window definition mode may permit the operatingsystem to unambiguously determine whether the user intends to drawwithin the current application window, or intends to move, resize, orcreate an application window in that area. In certain embodiments, otherinformation, such as the type of shape drawn, the timing of each penstroke, the extent to which the shape overlaps the existing applicationwindow, and the type of application running in the window may also beused by the operation system to determine, perhaps even without the useof a window definition mode, whether or not the user intends to performa windows definition function, rather than to interact with an existingapplication window.

In FIG. 4B, the Word Processor App window 407 has been moved and resizedto the position defined by the user-drawn rectangle 411. The rectangle411 is no longer displayed on the screen, and the user or system may nowdisengage window definition mode. In certain embodiments, windowdefinition mode may be disengaged automatically after a new window iscreated or after an existing window is moved or resized, since there maybe a likelihood that the user's next task might not be a windowsdefinition task, but rather a standard interaction with the operatingsystem or one of the application windows.

An additional potential advantage of the present disclosure isillustrated in FIGS. 4A and 48. In many current systems, resizing anapplication window and changing the screen location of an applicationwindow are completely separate tasks that must be accomplished by twodistinct user operations. As illustrated above, the present disclosuremay allow users to both resize and relocate an existing applicationwindow in one operation.

Referring to FIG. 5, a flowchart is shown illustrating part of thedecision making process that the operating system may undertake after auser draws a rectangle or other geometric symbol on the display screen.As discussed above, user input, such as symbols drawn on the screen witha pen input device, may be intended for a specific application ratherthan for a windows definition function, that is, rather than to move,resize, or create an application window. Thus, the operating system mayfirst attempt to determine whether the user intends to perform a windowsdefinition function, rather than merely interacting with an existingapplication. Then the operating system may determine which applicationwindow the user is attempting to move, resize, or create, and may defineand draw that application window on the display screen as determined bythe rectangle or other geometric shape drawn by the user.

In step 501, the user draws a geometric shape, such as a rectangle,somewhere on the display screen. The operating system may receive thisuser input in step 503 and may initially determine whether or not therectangle overlaps any existing application window on the displayscreen. If this shape does overlap an application window, then in step505 the operating system may check to see if the user has initiatedwindow definition mode prior to drawing the rectangle. If the user hasnot initiated window definition mode, then the operating system mayquickly conclude that the input drawn on the screen is not an attempt bythe user to move, resize, or create a new application window, and maytherefore allow the application in the underlying application window tohandle this user input in step 507.

However, if the rectangle was drawn directly onto the desktop and doesnot overlap an existing application window, or if the user has initiateda window definition mode, then the operating system may conclude thatthe user does intend to perform a windows definition function. In step509, the operating system may determine whether the user has predefinedan application for the drawn application window space. As discussedabove, in certain embodiments, the user may predefine an existingapplication window by tapping or otherwise selecting the applicationwindow after initiating window definition mode. Similarly, the user maypredefine a new application instance by, for example, writing theapplication name on the screen before drawing the rectangle. In anotherexample, certain embodiments allow a computer to be configured to sothat an application window will not immediately be drawn on the screenafter a user selects a program from a start menu, launch menu, rundialog box, word wheel dialog box, or similar program launchingtechnique. Instead, the computer may wait until the user draws arectangle before drawing the application window corresponding to the newapplication.

If the user has predefined an existing application window or newapplication instance, then the existing or new application window can bedrawn on the screen in step 511. As discussed above, the size, shape,and screen location of the application window may be based on the size,shape, and screen location of the rectangle drawn by the user.

If no application has been predefined, or III embodiments wherepredefined applications are not supported, the operating system may thentake steps to determine which existing application window or newapplication instance should be placed in the rectangle. In step 513, theoperating system may determine if there is a currently activeapplication window on the display screen. If so, and if the operatingsystem determines in step 515 that the computer is configured to selectthe active application window for use in this windows definition task,then the active window will be resized and moved to the screen locationof the user-drawn rectangle in step 511.

In step 517, there is either no active application window, or thecomputer is configured so that the active application window is notautomatically selected for window resizing Thus, the operating systemmay now solicit user input to determine which application window orwhich new application instance should be drawn in the rectangle. Thisstep may be accomplished by allowing to user to tap or otherwise selecta currently running application window. For example, the user may tap anarea on an application window drawn on the desktop region, or may choosean application window by selecting its associated task bar icon.Alternatively, the operating system may determine that the user intendsto start a new application in the rectangle, and may create a dialog boxor word wheel to enable the user to input and select the desired programname. The user may also have the option of selecting a program from thestart menu or writing the application name on the screen, for example,inside the rectangle as shown in FIG. 3A. Finally, once the operatingsystem has concluded which existing application window or newapplication instance has been selected by the user, the operating systemcan resize and/or move the existing window, or create the new window, atthe screen location determined by the rectangle in step 511.

The method illustrated in FIG. 5 represents one possible algorithm orset of heuristics that may be used to determine user interaction with acomputer system configured as described herein. Other algorithms,heuristics, and/or logic may alternatively be used to accomplish thesame or similar tasks. Additionally, the steps of FIG. 5 may bereordered, and one or more steps may be optional. Some steps may becombined or split up depending on the specific implementation desired.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A method for defining the size and location of anapplication window on a display screen of a computer, comprising:receiving a first user input identifying a target application; receivinga second user input comprising a geometric shape drawn on said displayscreen, said geometric shape drawn by a user with a computer inputdevice; determining a size and screen location of an application windowbased on said geometric shape; and establishing the target application msaid application window on the display screen.
 2. The method of claim 1,wherein said establishing comprises instantiating a new application onsaid computer and associating said new application with said applicationwindow on the display screen.
 3. The method of claim 1, wherein saidcomputer input device comprises a pen input device.
 4. The method ofclaim 3, wherein the second user input comprises a rectangle drawn onthe display screen with said pen input device, and wherein saiddetermining comprises selecting a size and screen location for theapplication window based on the size and screen location of saidrectangle.
 5. The method of claim 4, wherein said rectangle is drawn onthe display screen before said first user input is received, and whereinthe first user input comprises an application name written inside saidrectangle by the user.
 6. The method of claim 1, further comprisinginitiating a window definition mode on said computer prior to receivingsaid second user input, wherein while said computer is in the windowdefinition mode any geometric shape drawn on said display screen over anapplication window is not handled by the application associated withsaid application window.
 7. The method of claim 6, wherein said seconduser input comprises a geometric shape overlapping at least a portion ofat least one existing application window on the display screen.
 8. Themethod of claim 7, wherein initiating said window definition modecomprises receiving a third user input, said third user input comprisingpressing a designated window definition mode button positioned on one ofthe computer input device and the computer.
 9. A method for changing theappearance of an application window on a display screen, comprising:receiving a first user input identifying a currently runningapplication; receiving a second user input describing a configuration ofan application window associated with said currently running applicationon the display screen, wherein said second user input comprises a symboldrawn on the display screen by the user; changing the appearance of theapplication window associated with said currently running application onthe display screen, based on said symbol.
 10. The method of claim 9,wherein the second user input comprises a rectangle drawn on the displayscreen with a pen input device, and said changing the appearance of theapplication window comprises changing the size and screen location ofthe application window based on the size and screen location of saidrectangle.
 11. The method of claim 10, wherein said rectangle is drawnover an existing application window while said computer is in a windowdefinition mode.
 12. The method of claim 9, wherein said second userinput comprises a predetermined symbol drawn on the display screen witha pen input device, said symbol associated with an operating systemcommand to maximize said application window.
 13. The method of claim 9,wherein said second user input comprises a predetermined symbol drawn onthe display screen with a pen input device, said symbol associated withan operating system command to minimize said application window.
 14. Themethod of claim 9, wherein said second user input comprises apredetermined symbol drawn on the display screen with a pen inputdevice, said symbol associated with an operating system command to closesaid application window.
 15. The method of claim 9, wherein said firstuser input comprises tapping with a pen input device the applicationwindow associated with the currently running application while saidcomputer is in a window definition mode.
 16. An apparatus comprising astorage medium with instructions stored therein, the instructions whenexecuted causing a computing device to perform: receiving a first userinput describing a target application; receiving a second user inputcomprising a geometric shape drawn on said display screen, saidgeometric shape drawn by a user with a computer input device;determining a size and screen location of an application window based onsaid geometric shape; and establishing the target application m saidapplication window on the display screen.
 17. The apparatus of claim 16,wherein said computer input device comprises a pen input device.
 18. Theapparatus of claim 16, wherein said geometric shape is drawn on saiddisplay screen before said first user input is received, and wherein thefirst user input comprises an application name written inside saidrectangle.
 19. The apparatus of claim 16, further comprising initiatinga window definition mode on said computer prior to receiving said seconduser input, wherein while said computer is in the window definition modeany geometric shape drawn on said display screen over an applicationwindow is not handled by the application associated with saidapplication window.
 20. The apparatus of claim 19, wherein initiatingsaid window definition mode comprises receiving a third user input, saidthird user input comprising pressing a designated window definition modebutton on one of the computer input device and the computer.